package com.ssy.lingxi.order.model.dto;

import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.List;

/**
 * 从营销服务查询优惠券信息DTO
 * @author 万宁
 * @version 2.0.0
 * @date 2021-11-03
 */
public class OrderCouponDetailDTO implements Serializable {
    private static final long serialVersionUID = -7369909545519758244L;

    /**
     * 优惠券归属的供应会员（店铺）Id
     */
    private Long vendorMemberId;

    /**
     * 优惠券归属的供应会员（店铺）角色Id
     */
    private Long vendorRoleId;

    /**
     * （营销服务）优惠券Id
     */
    private Long couponId;

    /**
     * 优惠券名称
     */
    private String name;

    /**
     * 优惠券类型，定义在 MerchantCouponTypeEnum 或 PlatformCouponTypeEnum 中，需要根据 belongType 进行判断
     */
    private Integer couponType;

    /**
     * 优惠券归属类型，定义在 BelongTypeEnum 中
     */
    private Integer belongType;

    /**
     * 优惠券适用商品的SkuId列表
     */
    private List<Long> skuIds;

    /**
     * 优惠券面额
     */
    private BigDecimal amount;

    /**
     * 是否可用
     */
    private Boolean available;

    /**
     * 优惠券有效期起始时间
     */
    private LocalDateTime startTime;

    /**
     * 优惠券有效期结束时间，格式为 yyyy-MM-dd HH:mm:ss
     */
    private LocalDateTime expireTime;

    public Long getVendorMemberId() {
        return vendorMemberId;
    }

    public void setVendorMemberId(Long vendorMemberId) {
        this.vendorMemberId = vendorMemberId;
    }

    public Long getVendorRoleId() {
        return vendorRoleId;
    }

    public void setVendorRoleId(Long vendorRoleId) {
        this.vendorRoleId = vendorRoleId;
    }

    public Long getCouponId() {
        return couponId;
    }

    public void setCouponId(Long couponId) {
        this.couponId = couponId;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public Integer getCouponType() {
        return couponType;
    }

    public void setCouponType(Integer couponType) {
        this.couponType = couponType;
    }

    public Integer getBelongType() {
        return belongType;
    }

    public void setBelongType(Integer belongType) {
        this.belongType = belongType;
    }

    public List<Long> getSkuIds() {
        return skuIds;
    }

    public void setSkuIds(List<Long> skuIds) {
        this.skuIds = skuIds;
    }

    public BigDecimal getAmount() {
        return amount;
    }

    public void setAmount(BigDecimal amount) {
        this.amount = amount;
    }

    public Boolean getAvailable() {
        return available;
    }

    public void setAvailable(Boolean available) {
        this.available = available;
    }

    public LocalDateTime getStartTime() {
        return startTime;
    }

    public void setStartTime(LocalDateTime startTime) {
        this.startTime = startTime;
    }

    public LocalDateTime getExpireTime() {
        return expireTime;
    }

    public void setExpireTime(LocalDateTime expireTime) {
        this.expireTime = expireTime;
    }
}
